The programmable logic controller (“PLC” or “controller”) is commonly used in industry in connection with electrical, mechanical, hydraulic and pneumatic systems and processes to control the systems and processes. Control is typically achieved via virtual relays, contactors, counters, timers and other electromechanical devices, for example. The controller can encapsulate the virtual devices and functionality through hardware, software and firmware that can be configured by a user (e.g., user written, application specific code).
Typically, a User Interface (UI) is utilized to configure a controller, for example to write and download user programs. For example, the UI can be employed to customize a controller for a particular process. Customization can be applied through control software that can be stored in the controller's memory and/or by changing the hardware configuration of the controller. Employing configurable controllers provides the user with a customizable control mechanism that can be employed to semi-automate and/or automate a factory, which can reduce operating cost, mitigate maintenance and increase flexibility.
The basic controller comprises a plurality of modules such as a control module(s), an interface module(s) and an I/O module(s), for example, that can be interchangeable (e.g., hot swapping) and replaceable. The modules additionally can provide access between the controller and the environment. For example, the I/O module can be employed to interact with other controllers and devices, and various other stimuli. For example, an input channel of the I/O module can be employed to receive analog and digital signals through sensors, switches and the like that provide information indicative of state(s) (e.g., on/off) and/or relating to a process(s). The received input can be stored in memory and utilized to determine a next state. For example, programmable code running in system memory can execute instructions (e.g., in a sequential manner) and can employ the saved input to determine the next state. An output channel of the I/O module can then be employed to convey the next state to an instrument under the control of the controller.
The industrial controller differs from a conventional (e.g., general purpose) computer in several aspects. For example, unlike conventional computers, an industrial controller is designed to operate in an industrial environment with varying temperatures, humidity, pressure, electrical noise, mechanical vibration and particulates in the air. Moreover, the controller can be designed for quick access for installation, maintenance and troubleshooting by plant personnel, and to operate within often-harsh operating conditions indicative of a manufacturing environment.
A single controller can be employed to control an individual device or multiple devices. Likewise, multiple controllers can be employed to control an individual device or multiple devices. Employing multiple controllers provides for distributed control in a plant, wherein control can be delineated amongst various controllers that can be operative to a similar backplane and/or coupled through one or more communication links, and can be selectively employed. However, configuring multiple controllers can be time inefficient. For example, independently setting-up a plurality of controllers with a substantially similar configuration can be time consuming. In addition, replacing a controller and/or controller hardware typically entails configuring the replacement and/or the modified controller with the previous configuration, which can increase maintenance cost and plant downtime.